python encapsulation explained